home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / embedded / m68k / 68343ffp.arc / FFPCMP.SA < prev    next >
Text File  |  1989-08-30  |  5KB  |  94 lines

  1.        TTL     FAST FLOATING POINT CMP/TST (FFPCMP/FFPTST)
  2. ***************************************
  3. * (C) COPYRIGHT 1981 BY MOTOROLA INC. *
  4. ***************************************
  5.  
  6. *************************************************************
  7. *                      FFPCMP                               *
  8. *              FAST FLOATING POINT COMPARE                  *
  9. *                                                           *
  10. *  INPUT:  D6 - FAST FLOATING POINT ARGUMENT (SOURCE)       *
  11. *          D7 - FAST FLOATING POINT ARGUMENT (DESTINATION)  *
  12. *                                                           *
  13. *  OUTPUT: CONDITION CODE REFLECTING THE FOLLOWING BRANCHES *
  14. *          FOR THE RESULT OF COMPARING THE DESTINATION      *
  15. *          MINUS THE SOURCE:                                *
  16. *                                                           *
  17. *                  GT - DESTINATION GREATER                 *
  18. *                  GE - DESTINATION GREATER OR EQUAL TO     *
  19. *                  EQ - DESTINATION EQUAL                   *
  20. *                  NE - DESTINATION NOT EQUAL               *
  21. *                  LT - DESTINATION LESS THAN               *
  22. *                  LE - DESTINATION LESS THAN OR EQUAL TO   *
  23. *                                                           *
  24. *      CONDITION CODES:                                     *
  25. *              N - CLEARED                                  *
  26. *              Z - SET IF RESULT IS ZERO                    *
  27. *              V - CLEARED                                  *
  28. *              C - UNDEFINED                                *
  29. *              X - UNDEFINED                                *
  30. *                                                           *
  31. *               ALL REGISTERS TRANSPARENT                   *
  32. *                                                           *
  33. *************************************************************
  34.          PAGE
  35. FFPCMP IDNT    1,3  FFP CMP/TST
  36.  
  37.          XDEF      FFPCMP    FAST FLOATING POINT COMPARE
  38.  
  39.        XREF    FFPCPYRT        COPYRIGHT NOTICE
  40.  
  41.          SECTION  9
  42.  
  43. ***********************
  44. * COMPARE ENTRY POINT *
  45. ***********************
  46. FFPCMP   TST.B     D6        ? FIRST NEGATIVE
  47.          BPL.S     FFPCP     NO FIRST IS POSITIVE
  48.          TST.B     D7        ? SECOND NEGATIVE
  49.          BPL.S     FFPCP     NO, ONE IS POSITIVE
  50. * IF BOTH NEGATIVE THEN COMPARE MUST BE DONE BACKWARDS
  51.          CMP.B     D7,D6     COMPARE SIGN AND EXPONENT ONLY FIRST
  52.          BNE.S     FFPCRTN   RETURN IF THAT IS SUFFICIENT
  53.          CMP.L     D7,D6     COMPARE REVERSE ORDER IF BOTH NEGATIVE
  54.          RTS                 RETURN TO CALLER
  55. FFPCP    CMP.B     D6,D7     COMPARE SIGN AND EXPONENT ONLY FIRST
  56.          BNE.S     FFPCRTN   RETURN IF THAT IS SUFFICIENT
  57.          CMP.L     D6,D7     NO, COMPARE FULL LONGWORDS THEN
  58. FFPCRTN  RTS                 AND RETURN TO THE CALLER
  59.          PAGE
  60. *************************************************************
  61. *                     FFPTST                                *
  62. *           FAST FLOATING POINT TEST                        *
  63. *                                                           *
  64. *  INPUT:  D7 - FAST FLOATING POINT ARGUMENT                *
  65. *                                                           *
  66. *  OUTPUT: CONDITION CODES SET FOR THE FOLLOWING BRANCHES:  *
  67. *                                                           *
  68. *                  EQ - ARGUMENT EQUALS ZERO                *
  69. *                  NE - ARGUMENT NOT EQUAL ZERO             *
  70. *                  PL - ARGUMENT IS POSITIVE (INCLUDES ZERO)*
  71. *                  MI - ARGUMENT IS NEGATIVE                *
  72. *                                                           *
  73. *      CONDITION CODES:                                     *
  74. *              N - SET IF RESULT IS NEGATIVE                *
  75. *              Z - SET IF RESULT IS ZERO                    *
  76. *              V - CLEARED                                  *
  77. *              C - UNDEFINED                                *
  78. *              X - UNDEFINED                                *
  79. *                                                           *
  80. *               ALL REGISTERS TRANSPARENT                   *
  81. *                                                           *
  82. *************************************************************
  83.          PAGE
  84.          XDEF      FFPTST    FAST FLOATING POINT TEST
  85.  
  86. ********************
  87. * TEST ENTRY POINT *
  88. ********************
  89. FFPTST   TST.B     D7        RETURN TESTED CONDITION CODE
  90.          RTS                 TO CALLER
  91.  
  92.          END
  93.  
  94.